package com.zhijian.medical.entity.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.zhijian.medical.entity.vo.request.TechInstructionSaveOrUpdateVo;
import com.zhijian.medical.entity.vo.response.TechInstructionVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Api(tags = "常规病理-诊断")
public class RoutinePatientDiagnose {

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 病人ID
     */
    @ApiModelProperty("病人ID")
    private Long patientId;

    @ApiModelProperty("报告状态 0 初诊， 1 复诊 2 已审核")
    private Integer paperState;

    /**
     * 住院号
     */
    @ApiModelProperty("肉眼所见")
    private String rysj;

    @ApiModelProperty("镜下所见")
    private String jxsj;

    @ApiModelProperty("特殊检查")
    private String specialCheck;

    @ApiModelProperty("病理诊断")
    private String blDiagnose;

    @ApiModelProperty("初步诊断")
    private String firstDiagnose;

    @ApiModelProperty("备注")
    private String note;

    @ApiModelProperty("初诊医生")
    private Long firstDocker;

    @ApiModelProperty("复诊医生")
    private Long followDocker;

    @ApiModelProperty("审核医生")
    private Long censorDocker;

    @ApiModelProperty("初诊医生名称")
    private String firstDockerName;

    @ApiModelProperty("复诊医生名称")
    private String followDockerName;

    @ApiModelProperty("审核医生名称")
    private String censorDockerName;

    @ApiModelProperty("报告时间")
    private String paperTime;

    @ApiModelProperty("缓发原因， 0 免疫组化、1 特殊染色、2 重新切片、3 会诊、4 问病史、5 上交上级医生、6 脱钙、7 未交费、8 借原单位切片、9 江北送本部、10 其他")
    private Integer waitReason;

    @ApiModelProperty("阴阳性 0 阴、1 阳")
    private Integer natureType;

    @ApiModelProperty("临床符合 1 符合、0 不符合")
    private Integer clinicType;

    @ApiModelProperty("冰冻符合 1.符合、 0 不符合")
    private Integer iceType;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("修改时间")
    private Date updateTime;

    @ApiModelProperty("最新打开时间")
    private Date latestTime;

    @ApiModelProperty("常规病例类型：0-否；1-是；")
    private Byte weatherCgbl;

    @ApiModelProperty("术中快速类型：0-否；1-是；")
    private Byte weatherSzks;

    @ApiModelProperty("细胞病理类型：0-否；1-是；")
    private Byte weatherXbbl;

    /**
     * 常规病理号
     */
    @ApiModelProperty("常规病理号")
    @TableField(exist = false)
    private String conventionPathologyNumber;

    @Data
    public static class DiseaseCollect{

        @ApiModelProperty("疾病ID")
        @NotNull(message = "疾病ID不能为空")
        private Long diseaseId;

        @ApiModelProperty("疾病名称")
        private String diseaseName;

        @ApiModelProperty("诊断报告ID")
        private Long diagnoseId;

    }

    @Data
    public static class HzDockerInfo{

        @ApiModelProperty(value = "会诊医生ID", required = true)
        @NotNull(message = "会诊医生不能为空")
        private Long dockerId;

        @ApiModelProperty(value = "诊断报告ID", required = true)
        @NotNull(message = "诊断报告ID不能为空")
        private Long diagnoseId;

        @ApiModelProperty("会诊医生名称")
        private String dockerName;

    }
}
